package swing.swing05.model;

import javax.swing.*;
import java.math.BigDecimal;
import java.math.RoundingMode;

public class NumberComboBoxListModel extends NumberListModel implements ComboBoxModel<BigDecimal> {

    // 当前选中条目的索引
    private int selectedIdx;

    public NumberComboBoxListModel(BigDecimal start, BigDecimal end, BigDecimal step) {
        super(start, end, step);
    }

    // 给一个条目的值 设置为正在选中的条目的索引
    @Override
    public void setSelectedItem(Object anItem){
        if(anItem instanceof BigDecimal){
            BigDecimal curr=(BigDecimal) anItem;
            selectedIdx=curr.subtract(super.start).divide(super.step,2, RoundingMode.HALF_DOWN).intValue();
        }
    }

    // 获取当前选中的内容
    @Override
    public Object getSelectedItem(){

        BigDecimal item = new BigDecimal(selectedIdx).multiply(super.step).add(super.start).setScale(1,RoundingMode.HALF_DOWN);

        return item;
    }

}



